package com.zhiyun.service;

import com.zhiyun.domain.Course;
import com.zhiyun.domain.Examination;
import com.zhiyun.vo.ExaminationRecordVo;
import com.zhiyun.vo.Result;

public interface ExaminationService {
    /**
     *
     * @param courseId
     * @return List<examination>
     */
    public Result getExaminations(Integer courseId);
    /**
     *未开始的考试
     * @param courseId
     * @return List<examination>
     */
    public Result getNotStartExaminations(Integer courseId);
    /**
     *正在考的考试
     * 通过course拿到examination,通过examination拿到testPaper,通过testPaper拿到testQuestion
     * @param courseId
     * @return List<examination>
     */
    public Result getNowExaminations(Integer courseId);
    /**
     *结束的考试
     * @param courseId
     * @return List<examination>
     */
    public Result getEndExaminations(Integer courseId);

    /**
     *
     * @param examinationId
     * @return Examination
     */
    public Result startExamination(Integer examinationId);
    public Result submit(ExaminationRecordVo examinationRecordVo,Integer StudentId);

    /**
     * 通过ExaminationRecord拿到Response,通过Response拿到TestQuestion
     * @param examinationId
     * @param studentId
     * @return ExaminationRecord
     */
    public Result getExaminationDetails(Integer examinationId,Integer studentId);
    public Result addExamination(Examination examination);
    public Result updateExamination(Examination examination);

    /**
     *ExaminationRecord里有Student
     * @param examinationId
     * @return List<ExaminationRecord>
     */
    public Result getAllStudentDetails(Integer examinationId);

    /**
     * 查看某个学生的试卷
     * @param recordId
     * @return List<Responses> response里有testQuestion
     */
    public Result getExaminationDetailsByRecordId(Integer recordId);

    /**
     * 修改某一道具体的题目的分值
     * @param responseId
     * @param responseScore
     * @return
     */
    public Result updateResponseScore(Integer responseId,Integer responseScore);
}
